The present application relates to navigation systems and in particular, the present application relates to memory management for a navigation system that facilitates use and access of a geographic database.
Computer-based navigation systems are available that provide end-users with various navigating functions and features. For example, some navigation systems are installed in vehicles and are able to provide end-users (i.e., drivers of the vehicles) with optimum routes to travel by roads between locations in a geographic region. Using input from the end-user, and optionally from equipment that can determine one's physical location (such as a GPS system), a navigation application program in the navigation system can examine various routes between two locations to determine an optimum route to travel from a starting location to a destination location in a geographic region. The navigation application program may then provide the end-user with information about the optimum route in the form of instructions that identify the maneuvers required to be taken by the end-user to travel from the starting location to the destination location. If the navigation system is located in an automobile, the instructions may take the form of audio instructions that are provided along the way as the end-user is traveling the route. Some navigation application programs are able to show detailed maps on computer displays illustrating routes to destinations, the types of maneuvers to be taken at various locations along the routes, locations of certain types of features, and so on.
In order to provide these and other navigating functions, the navigation system or application uses one or more detailed databases that include data which represent physical features in a geographic region. The detailed database may include data representing the roads and intersections in a geographic region and also may include information about the roads and intersections in a geographic region, such as turn restrictions at intersections, speed limits along the roads, street names of the various roads, address ranges along the various roads, and so on.
In order to provide a reasonably high level of functionality, a relatively large database may be provided. Storage media, such as CD-ROM discs or PCMCIA cards, are capable of handling databases of the size and complexity sufficient to provide suitable functionality. However, computer-based navigation systems are provided on various platforms including some with relatively limited computer hardware resources. For example, navigation systems that are located in vehicles or that are hand-held may have limited memory resources and relatively slow media access rates. These relatively limited hardware resources make it difficult to provide the relatively high level of functionality expected or required by end-users as well as suitably fast performance. Aside from being undesirable, slow performance in a navigation system may render the system useless for its intended purpose in certain circumstances. For example, if the navigation system is installed in a vehicle, the driver may require information from the navigation system about a desired route in a matter of seconds in order to utilize the information while driving. If the navigation system requires more than several seconds to calculate a route, the driver may have moved beyond the point at which the routing information provided by the navigation system is relevant. Therefore, there is a need to utilize the hardware resources in a navigation system efficiently in order to provide a suitable level of performance.
Some navigation applications may be provided on computer platforms that have greater memory and other hardware resources. On these kinds of platforms, similar considerations apply, but on a different scale. On computer platforms that have greater memory and other hardware resources, even greater functionality can be provided if the available resources are used efficiently.
Accordingly, it is an objective to provide a method and system that utilizes the resources of a navigation system efficiently thereby enabling the system to provide better performance.